﻿<?php

	// 时间的获取使用time() 用来获取当前的时间戳
	//echo time();//结果 1522031597  时间戳就是自1970年1月1日到现在的秒数
	/*time();
	// Y：4位年份 y：2位年份 m:月份 d；日 H：24小时制 h：12小时制 i：分 s：秒
	echo date('Y-m-d H:i:s',time());//时间戳格式转换 2018-03-26 10:36:39 date(事件转换的格式,时间戳的值)
	die;*/
    //cookie只能存储字符串，不能存储数组 默认在浏览器上是看得到用户登录保存的信息的
	/*setcookie('username', 'zql', time()+3600*24*7);//当前的时间戳+24小时+7=存储一周的时间
	//print_r($_COOKIE);die;
	print_r($_COOKIE['username']);die;//将登录名打印出来*/


	//print_r($_POST);
	//实现数据库连接 mysqli_connect()函数
	/*host参数 是数据库的地址 127.0.0.1/localhost
      user参数 是接收数据库的登录名 root
      password参数 是接收数据库的密码 root
      database参数 是要操作的数据库名称
    */
      //加载初始化文件
		include('init.php');


	if(!empty($_POST)){// 判断一个变量不为空

	//优化1、在记住我我的状态下实现使用cookie的密码实现登陆
		//$username=$_POST['username'];
		/*if(!empty($_COOKIE['username']))
		{
			$password=$_COOKIE['password'];
		}else{
			$password=md5($_POST['password']);//加密的密码登录
		}*/

		//优化2、在记住我的状态下实现随意输入登录失败
		// 从$_POST中获取提交的变量存储在临时变量中
		$username=$_POST['username'];
		//如果满足这个条件 说明优化手动输入了正确的密码
		if(!empty($_COOKIE['username'])&&$_COOKIE['password']==md5($_POST['password']))
		{
			$password=$_COOKIE['password'];
		}
		//如果满足这个条件 说明用户是直接使用记住我的状态下登录的并没有输入密码
		else if(!empty($_COOKIE['username'])&&$_COOKIE['password']==$_POST['password'])
		{
			$password=$_COOKIE['password'];
		}else if(empty($_COOKIE['username']))//当清空了COOKIE里的数据时，使用户输入的密码与数据库加密的密码值一致
		{
			$password=md5($_POST['password']);
		}else{
			echo '<script>alert("用户名或密码错误");history.go(-1);</script>';die;
		}


		/*if(!empty($_COOKIE['username']))
		{
			$password=$_COOKIE['password'];
		}else{
			$password=md5($_POST['password']);//加密的密码登录
		}*/



	 	//print_r($_POST);die;
	 /*	$link=mysqli_connect('127.0.0.1','root','root','hcs');
		//r_dump($link);die;

	 //判断数据库是否连接成功

		 if(!$link){
				// echo '数据库连接失败';die;
				echo '<script>alert("数据库连接失败");history.go(-1);</script>';//返回到前一个页面
				die;
		}
		// 设置数据库传输编码 mysqli_query(数据库连接成功的连接对象，数据库操作sql语句)
		mysqli_query($link,'set names utf8');
*/
		// 从$_POST中获取提交的变量存储在临时变量中
		// 在记住我的状态下测试手动输入密码实现登录
		//$username=$_POST['username'];
		//$password=md5($_POST['password']);//加密的密码登录


		// 编写查询语句
		// 注意引号`admin`和'$username'，表名和字段名用``,变量名用''。
		// 变量只能作用于当前页面
		$sql="select * from `admin` where `username`='$username' and `password`='$password'";

		// 执行sql
		$result=mysqli_query($link,$sql); //结果集  表示查询到的结果有很多条记录。只有执行了查询语句才有

		//print_r($result);die;
	//错误的 表示查询不到数据
	// mysqli_result Object
	// (
	//     [current_field] => 0
	//     [field_count] => 8
	//     [lengths] =>
	//     [num_rows] => 0 表示查询不到数据
	//     [type] => 0
	// )
	// 正确的 表示查询到数据
	// mysqli_result Object
	// (
	//     [current_field] => 0
	//     [field_count] => 8 表示数据库表的列数
	//     [lengths] =>
	//     [num_rows] => 1 表示查询到数据
	//     [type] => 0
	// )
	//

		//从查询到的结果集中提取到真实的数据，提取一条数据
		$data=mysqli_fetch_assoc($result);
		//print_r($data);die;

	//Array   $data查询到的数据库里对应的记录
	// (
	//     [id] => 1
	//     [username] => zql
	//     [password] => 20150817
	//     [age] =>
	//     [sex] =>
	//     [login_time] =>
	//     [out_time] =>
	//     [create_time] =>
	// )


	//判断变量是否为空来提示登录是否成功
	if(!empty($data))
	{
		// 开启session
		//session_start();
		// print_r($_SESSION);
		// 向session存储用户信息
		$_SESSION['zql']=$data;//zql为存储的下标
		// print_r($_SESSION);die;

	// 记住我流程
		// 	1、判断用户是否勾选了记住我
		// 		怎么知道？将checkbox的值通过标点提交到程序中去判断
		// 	2、判断提交上来checkbox的值来知道用户是否勾选了记住我？
		// 		如果勾选了记住我，我们要将用户信息存储到cookie中
		// 	3、当用户退出以后，登录页面默认显示刚才存储的cookie用户信息哎输入框中并且记住我默认选中？
		// 		实现记住我默认选中：默认选中时cookie属性，checked属性一个根据cookie有没有值来选择显示选择还是不选中
		// 		判断cookie是否有值？有则输出默认选中属性实现checkbox默认选中
		// 	4、输入框默认显示cookie里面的值，则需要设置value属性


		//判断用户是否勾选了记住我
			if(!empty($_POST['check'])){
				//如果如果勾选将用户信息保存在cookie中,保存时间为一天
				setcookie('username',$username,time()+3600*24);
				setcookie('password',$password,time()+3600*24);
				//print_r($_COOKIE);
			}else{
				//用户取消记住我则清空用户信息，将值设值为空，有效时间设值为0
				setcookie('username','',0);
				setcookie('password','',0);
			}

			//判断用户是否勾选了自动登录
			if (!empty($_POST['auto'])) {
				setcookie('auto_login',1,time()+3600*24);//勾选了显示1
			}else{
				setcookie('auto_login',0,0);//未勾选了显示0
			}

			//print_r($_POST);die;
			//echo '<script>alert("登录成功");location.href="index.php"</script>';die;
			header('location:index.php');//通过使用header函数对页面的头部信息进行设置
		}else{
			echo '<script>alert("用户名或密码错误");history.go(-1);</script>';die;
		}
	}


	/*php视图内置加载函数
	include
	include_once 表示只加载一次*/

	//视图加载 将login.html文件复制到这里来进行运行
	include('login.html'); 只生成警告，并且脚本会继续
	//require('login.html');//会生成致命错误并且停止脚本

 ?>


